1. Field of the Invention
The present invention generally relates to a defect management method for a storage medium and a system thereof. In particular, the present invention relates to a defect management method for a memory and a system thereof.
2. Description of Related Art
The data recording function of a storage medium, especially a non-volatile memory such as a flash memory, starts to deteriorate after the storage medium has been written and erased for above predetermined times due to the tunneling effect of semiconductors. To resolve foregoing problem, error correction codes (ECCs) are used in data blocks of a memory for data corrections. Additionally, defect management, software management, or endurance management has also been adopted for managing or correcting defective data in a memory. However, each of these methods has its disadvantage.
According to the ECC method, another management mechanism has to be adopted when the error can not be corrected. Thus, a potential defect data block cannot be effectively predicted and accordingly the defect cannot be prevented in advance. According to the defect management method, the defect is not predicted or prevented in advance; instead, a defective block is just marked and managed. However, in the defect management method, data may be damaged in a new defective block.
According to the software management method, a flash memory for management is embedded in an operating system or application software. However, the storage medium of such method cannot be portable, and when the operating system or application software is re-installed, the management data will be lost. In addition, an endurance management is to manage the memory usage based on a counting manner.
In addition, the endurance management is a counting management method. This method utilizes writing times as a mechanism for damage prevention. This method will waste many data blocks that are marked as defective blocks before any defect occurs therein. In addition, the endurance management is not applicable to data blocks whose damage is caused by non-writing operations, for example, the data block is read many times or left idle for very long time.
Accordingly, a method for effectively managing defective data blocks and preventing defects in advance is required.